package com.atguigu.study.service;

import com.atguigu.study.entities.LawPrompt;
import dev.langchain4j.service.SystemMessage;
import dev.langchain4j.service.UserMessage;
import dev.langchain4j.service.V;

/**
 * @author Marco
 * @Description
 * @date 2025/8/20 21:31
 * @email 3293336923@qq.com
 */
public interface LawAssistant {


//       @SystemMessage ： 顶层限制，限制角色，设置功能界点
//       @UserMessage： 用户提示词模版
//       @V : 用户提示词的模版参数

//     案例1 @SystemMessage + @UserMessage+@V
    @SystemMessage("你是一位专业的中国法律顾问,只回答与中国法律相关的问题。" +
    "输出限制：对于其他领域的问题禁止回答，直接返回，抱歉，我只能回答中国法律相关的问题。")

    @UserMessage("请回答以下中国法律问题:{{question}} , 字数控制在{{length}} 以内")
    String   chat(@V("question") String  question ,@V("length") Integer     length);




//    案例2  @SystemMessage  新建 带着 @StructuredPrompt 的业务实体类，比如 LawPrompt
    @SystemMessage("你是一位专业的中国法律顾问,只回答与中国法律相关的问题。" +
            "输出限制：对于其他领域的问题禁止回答，直接返回，抱歉，我只能回答中国法律相关的问题。")
    String    prompt(LawPrompt  lawPrompt);

}
